package com.zqh.myfmmall.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zqh.myfmmall.entity.Orders;
import com.zqh.myfmmall.vo.OrdersVO;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * 订单 (Orders)表服务接口
 *
 * @author KONO 曾淇杭哒！
 * @since 2022-01-20 20:53:00
 */
public interface OrdersService extends IService<Orders> {

    /**
     * 功能描述:
     * 生成订单
     *
     * @param shoppingCartIds
     * @param addrId
     * @param userId
     * @return java.util.Map<java.lang.String, java.lang.String>
     * @author kono曾淇杭哒！
     * @date 2022/1/28 2:11
     */
    public Map<String,String> addOrder(List<String> shoppingCartIds, String addrId, String userId) throws RuntimeException;

    /**
     * 功能描述:
     * 检验订单是否超时未支付，如是则进行对应处理
     * @param orderId
     * @return
     * @author kono曾淇杭哒！
     * @date 2022/1/28 21:06
     */
    void checkExpiredNotPayed(String orderId);

    /**
     * 功能描述:
     * 分页查询用户特定状态的订单
     *
     * @param userId
     * @param status
     * @param pageSize
     * @param pageNum
     * @return java.util.List<com.zqh.myfmmall.vo.OrdersVO>
     * @author kono曾淇杭哒！
     * @date 2022/1/29 1:40
     */
    List<OrdersVO> pageByUserIdAndStatus(String userId,Integer status,Integer pageSize,Integer pageNum);

    Map<String,Integer> orderCounts(String userId);
}

